import { getAction, postAction } from '../controller';

export interface AppointmentInfoRespVO {
  /**
   * 预约申请日期及时间：提交预约申请的时间
   */
  applyDateTime?: string
  /**
   * 预约日期
   */
  appointmentDate?: string
  /**
   * 预约单号：本次预约的唯一编号
   */
  appointmentNumber?: string
  /**
   * 病区ID
   */
  areaId?: number
  /**
   * 病区名称
   */
  areaName?: string
  /**
   * 诊室ID
   */
  clinicRoomId?: number
  /**
   * 诊室名称
   */
  clinicRoomName?: string
  /**
   * 创建时间
   */
  createTime?: string
  /**
   * 科室ID
   */
  departmentId?: number
  /**
   * 科室名称
   */
  departmentName?: string
  /**
   * 预约医生代码：负责预约的医生编号
   */
  doctorCode?: string
  /**
   * 预约医生Id：负责预约的医生Id
   */
  doctorId?: number
  /**
   * 医生名称
   */
  doctorName?: string
  /**
   * 电子诊疗卡
   */
  electronicTreatmentCard?: string
  /**
   * 预约结束时间：预约的结束时间
   */
  endTime?: string
  /**
   * 健康卡
   */
  healthCardNo?: string
  /**
   * 唯一ID
   */
  id?: number
  /**
   * 患者身份证号码：患者的唯一标识码
   */
  idNumber?: string
  /**
   * 医保卡
   */
  insuranceCardNo?: string
  /**
   * 患者编号
   */
  patientCode?: string
  /**
   * 患者姓名：患者的名字
   */
  patientName?: string
  /**
   * 预约队列ID
   */
  queueId?: number
  /**
   * 预约队列编号：预约队列编号
   */
  queueNo?: string
  /**
   * 预约优先级：预约优先级，如：普通预约、加急预约、加急加急预约
   */
  queuePriority?: number
  /**
   * 签到状态
   */
  signInStatus?: string
  /**
   * 预约开始时间：预约的起始时间
   */
  startTime?: string
  /**
   * 状态
   */
  status?: number
  /**
   * 诊疗卡
   */
  treatmentCard?: string
  /**
   * 前方等待人数
   */
  frontCount: number
  /**
   * 等待时间
   */
  waitMinute: number

  /**
   * 就诊地点
   */
  address: string
}

export const AppointmentInfoApi = {
  /**
   * 获取门诊签到列表
   * @param patientId 患者ID
   */
  getClinicSignInList: (patientId: number) => {
    return getAction<AppointmentInfoRespVO[]>('/healthcare/appointment-info/getListDataByPatientId', { patientId });
  },

  /**
   * 门诊报道
   * @param id 预约id
   * @returns
   */
  onClinicSignIn: (id: number) => {
    return postAction<AppointmentInfoRespVO>('/healthcare/appointment-info/check-in', { id });
  }
};
